<li>name: string, required. Domain name.
<li>id: int, optional, default generated. Domain unique id.
<li>memory: int, required. Domain memory in MB.
+ <li>maxmem: int, optional. Maximum domain memory in MB.
<li>cpu: int, optional. Cpu to run on.
<li>cpu_weight, float, optional, default 1. Cpu weight - controls share of CPU.
<li>image: linux | netbsd | ..., required. Domain image (OS-specific element).
self.config.remove(['device', dev_config])
dev.destroy()
+ def configure_memory(self):
+ """Configure vm memory limit.
+ """
+ maxmem = sxp.get_child_value(self.config, "maxmem")
+ if maxmem is None:
+ maxmem = self.memory
+ xc.domain_setmaxmem(self.dom, maxmem_kb = maxmem * 1024)
+
def configure_console(self):
"""Configure the vm console port.
"""
@param vm: virtual machine
@param config: vm config
- @param val: vfr field
+ @param val: config field
@param index: field index
"""
pass
+def vm_field_maxmem(vm, config, val, index):
+ """Configure vm memory limit.
+
+ @param vm: virtual machine
+ @param config: vm config
+ @param val: config field
+ @param index: field index
+ """
+ maxmem = sxp.child0(val)
+ if maxmem is None:
+ maxmem = vm.memory
+ try:
+ maxmem = int(maxmem)
+ except:
+ raise VmError("invalid maxmem: " + str(maxmem))
+ xc.domain_setmaxmem(vm.dom, maxmem_kb = maxmem * 1024)
+
# Register image handlers.
add_image_handler('linux', vm_image_linux)
add_image_handler('netbsd', vm_image_netbsd)
add_config_handler('backend', vm_field_ignore)
# Register other config handlers.
+add_config_handler('maxmem', vm_field_maxmem)
fn=set_int, default=128,
use="Domain memory in MB.")
+gopts.var('maxmem', val='MEMORY',
+ fn=set_int, default=None,
+ use="Maximum domain memory in MB.")
+
gopts.var('cpu', val='CPU',
fn=set_int, default=None,
use="CPU to run the domain on.")
config = ['vm',
['name', vals.name ],
['memory', vals.memory ]]
+ if vals.maxmem:
+ config.append(['maxmem', vals.maxmem])
if vals.cpu is not None:
config.append(['cpu', vals.cpu])
if vals.cpu_weight is not None: